widget: Add gtk_widget_set_gesture_state()
authorCarlos Garnacho <carlosg@gnome.org>
Wed, 26 Mar 2014 09:49:21 +0000 (10:49 +0100)
committerCarlos Garnacho <carlosg@gnome.org>
Fri, 23 May 2014 17:54:24 +0000 (19:54 +0200)
This helper function ensures the state is propagated for
all the active sequences in the given gesture.

gtk/gtkwidget.c
gtk/gtkwidget.h

index efffd05b88e3b80e0a1298b206af5a9e3f0fb418..a1560b1e6d02e04485472c0e99f3dced508a10de 100644 (file)
@@ -16822,3 +16822,24 @@ gtk_widget_set_sequence_state (GtkWidget             *widget,
       event_widget = gtk_widget_get_parent (event_widget);
     }
 }
+
+void
+gtk_widget_set_gesture_state (GtkWidget             *widget,
+                              GtkGesture            *gesture,
+                              GtkEventSequenceState  state)
+{
+  GList *gestures, *l;
+
+  g_return_if_fail (GTK_IS_WIDGET (widget));
+  g_return_if_fail (GTK_IS_GESTURE (gesture));
+  g_return_if_fail (state >= GTK_EVENT_SEQUENCE_NONE &&
+                    state <= GTK_EVENT_SEQUENCE_DENIED);
+  g_return_if_fail (_gtk_widget_has_gesture (widget, gesture));
+
+  gestures = gtk_gesture_get_sequences (gesture);
+
+  for (l = gestures; l; l = l->next)
+    gtk_widget_set_sequence_state (widget, l->data, state);
+
+  g_list_free (gestures);
+}
index 5795865bdd63985ee54166665b42449bf77b3989..53e2c98955b64562f7dcfc95c0d0a4633dd9596d 100644 (file)
@@ -1488,6 +1488,10 @@ GDK_AVAILABLE_IN_3_14
 void                  gtk_widget_set_sequence_state     (GtkWidget             *widget,
                                                          GdkEventSequence      *sequence,
                                                          GtkEventSequenceState  state);
+GDK_AVAILABLE_IN_3_14
+void                  gtk_widget_set_gesture_state      (GtkWidget             *widget,
+                                                         GtkGesture            *gesture,
+                                                         GtkEventSequenceState  state);
 
 G_END_DECLS